Skip to content

MS-1547 Module selection in pool validation - #1816

Merged
luhmirin-s merged 4 commits into
mainfrom
feature/MS-1547-id-pool-module-selection
Sep 17, 2026
Merged

luhmirin-s merged 4 commits into
mainfrom
feature/MS-1547-id-pool-module-selection

Conversation

@luhmirin-s

Copy link
Copy Markdown
Contributor

JIRA ticket
Will be released in: 2027.1.0

Notable changes

  • Add an option to select modules on the subject pool validation pool page

Testing guidance

  • Have project with module partitioning.
  • Do fresh authentication intent to hit the subject pool validation screen.
  • Select modules when presented with the option.

Additional work checklist

  • Effect on other features and security has been considered
  • Design document marked as "In development" (if applicable)
  • External (Gitbook) and internal (Confluence) Documentation is up to date (or ticket created)
  • Test cases in Testiny are up to date (or ticket created)
  • Other teams notified about the changes (if applicable)

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new module-selector result flow can treat Cancel/Back the same as Save and can race sync initiation before module selection is persisted, leading to incorrect or unnecessary syncing.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds a module-selection path to the subject pool validation flow so users can resolve “module mismatch” situations by opening the existing module selector UI from the validation screen.

Changes:

  • Added a “Select modules” action (with translations) and surfaced it in the validation screen UI for the ModuleMismatch state.
  • Wired navigation from validate-subject-pool to ModuleSelectorFragment, including result handling on return.
  • Updated module-selector to finish with a ModuleSelectorResult when dismissing.
File summaries
File Description
infra/resources/src/main/res/values/strings.xml Adds “Select modules” string.
infra/resources/src/main/res/values-fr/strings.xml Adds French translation for “Select modules”.
infra/resources/src/main/res/values-am-rET/strings.xml Adds Amharic translation for “Select modules”.
feature/validate-subject-pool/src/main/res/navigation/graph_validate_subject_pool.xml Adds nav destination/action for module selection screen.
feature/validate-subject-pool/src/main/res/layout/fragment_validate_subject_pool.xml Adds “Select modules” button to the validation actions block.
feature/validate-subject-pool/src/main/res/layout-land/fragment_validate_subject_pool.xml Adds landscape equivalent “Select modules” button.
feature/validate-subject-pool/src/main/java/com/simprints/feature/validatepool/screen/ValidateSubjectPoolFragment.kt Shows the new action for module mismatch and triggers work when the module selector returns.
feature/validate-subject-pool/build.gradle.kts Adds dependency on :feature:module-selector.
feature/module-selector/src/main/java/com/simprints/feature/moduleselector/ModuleSelectorResult.kt Introduces a result type to return from module selector.
feature/module-selector/src/main/java/com/simprints/feature/moduleselector/ModuleSelectorFragment.kt Finishes with ModuleSelectorResult when dismissing/backing out.
Review details

Suppressed comments (1)

feature/module-selector/src/main/java/com/simprints/feature/moduleselector/ModuleSelectorFragment.kt:113

  • ModuleSelectorEffects.Dismiss is emitted for both Cancel and Save actions, but is now handled by finishWithResult(..., ModuleSelectorResult). When used as a child screen, this makes Cancel indistinguishable from Save to the parent, and can cause the parent flow to proceed (e.g., start syncing) even when the user cancelled. Consider introducing separate effects (e.g., Dismiss, FinishSaved) and only calling finishWithResult for the Save/confirm path.
    private fun handleEffect(effect: ModuleSelectorEffects) = when (effect) {
        ModuleSelectorEffects.Dismiss -> findNavController().finishWithResult(this, ModuleSelectorResult)
        is ModuleSelectorEffects.ShowPassword -> {
  • Files reviewed: 10/10 changed files
  • Comments generated: 2
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@luhmirin-s
luhmirin-s force-pushed the feature/MS-1547-id-pool-module-selection branch from f5332f2 to 23294bd Compare September 3, 2026 14:48
@luhmirin-s
luhmirin-s requested a lite review from Copilot September 3, 2026 14:49

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The updated module-save flow can leave the UI without a result and/or persist changes after dismissal due to lifecycle-detached work and missing failure/in-flight handling in saveModules().

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 13/13 changed files
  • Comments generated: 1
  • Review effort level: Lite

@luhmirin-s
luhmirin-s force-pushed the feature/MS-1547-id-pool-module-selection branch from 23294bd to b9fa27a Compare September 7, 2026 06:22
@luhmirin-s
luhmirin-s force-pushed the feature/MS-1547-id-pool-module-selection branch from b9fa27a to d5e6b05 Compare September 7, 2026 06:50
@luhmirin-s
luhmirin-s force-pushed the feature/MS-1547-id-pool-module-selection branch from d5e6b05 to 64358fc Compare September 7, 2026 10:16
@luhmirin-s

Copy link
Copy Markdown
Contributor Author

Uncovered lines are the "result" and contract definitions.

@luhmirin-s
luhmirin-s force-pushed the feature/MS-1547-id-pool-module-selection branch from 64358fc to 9bbee77 Compare September 7, 2026 11:47
@luhmirin-s
luhmirin-s requested review from a team, BurningAXE, TristramN, alex-vt, alexandr-simprints, meladRaouf and ybourgery and removed request for a team September 8, 2026 12:25
@luhmirin-s
luhmirin-s force-pushed the feature/MS-1547-id-pool-module-selection branch from 9bbee77 to d63469f Compare September 8, 2026 12:25
@luhmirin-s
luhmirin-s force-pushed the feature/MS-1547-id-pool-module-selection branch from d63469f to 73aff84 Compare September 9, 2026 08:34
@luhmirin-s
luhmirin-s force-pushed the feature/MS-1547-id-pool-module-selection branch from 337515c to 82badfd Compare September 16, 2026 08:30
Base automatically changed from feature/MS-1451-module-selection-rework to main September 17, 2026 06:53
@luhmirin-s
luhmirin-s force-pushed the feature/MS-1547-id-pool-module-selection branch from 82badfd to b1a727a Compare September 17, 2026 06:53
@luhmirin-s
luhmirin-s merged commit 55654c9 into main Sep 17, 2026
11 checks passed
@luhmirin-s
luhmirin-s deleted the feature/MS-1547-id-pool-module-selection branch September 17, 2026 06:54
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants